package interfaceGrafica;

import negocios.*;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;

@SuppressWarnings("serial")
public class Popup extends JDialog {

	private ModoDeJogo treinamento;
	private PainelEasy painelEasy;
	private JLabel drop1;
	private JLabel drop2;
	private JLabel drop3;

	private JLayeredPane painel;
	private JLabel background;
	private JButton back;
	private JButton next;
	private JButton show;

	private ImageIcon backgroundImagem;
	private ImageIcon backImagem1;
	private ImageIcon backImagem2;
	private ImageIcon backImagem3;
	private ImageIcon nextImagem1;
	private ImageIcon nextImagem2;
	private ImageIcon nextImagem3;
	private ImageIcon showImagem1;
	private ImageIcon showImagem2;
	private ImageIcon showImagem3;

	public Popup(Janela janela, ModoDeJogo treinamento, PainelEasy painelEasy,
			boolean acertou, JLabel drop1, JLabel drop2, JLabel drop3) {
		super(janela);
		super.setUndecorated(true);
		super.setPreferredSize(new Dimension(800, 600));
		super.setResizable(false);
		super.getContentPane().setLayout(new GridLayout());
		super.setModal(true);
		super.setOpacity(0.9f);
		painel = new JLayeredPane();
		painel.setBounds(0, 0, 800, 600);

		this.treinamento = treinamento;
		this.painelEasy = painelEasy;
		this.drop1 = drop1;
		this.drop2 = drop2;
		this.drop3 = drop3;

		backImagem1 = new ImageIcon(
				"Data\\Imagens\\Popup\\Acerto\\backImagem1.png");
		backImagem2 = new ImageIcon(
				"Data\\Imagens\\Popup\\Acerto\\backImagem2.png");
		backImagem3 = new ImageIcon(
				"Data\\Imagens\\Popup\\Acerto\\backImagem3.png");

		if (acertou == true) {
			backgroundImagem = new ImageIcon(
					"Data\\Imagens\\Popup\\Acerto\\backgroundImagem.png");
			nextImagem1 = new ImageIcon(
					"Data\\Imagens\\Popup\\Acerto\\nextImagem1.png");
			nextImagem2 = new ImageIcon(
					"Data\\Imagens\\Popup\\Acerto\\nextImagem2.png");
			nextImagem3 = new ImageIcon(
					"Data\\Imagens\\Popup\\Acerto\\nextImagem3.png");

			this.background = new JLabel();
			this.background.setIcon(backgroundImagem);
			this.background.setBounds(0, 0, 800, 600);
			painel.add(background, JLayeredPane.DEFAULT_LAYER);

			back = new JButton();
			MenuPrincipal.inicializarBotao(painel, back, backImagem1,
					backImagem2, backImagem3, 280, 450,
					backImagem2.getIconWidth(), 100);
			back.addMouseListener(new MouseAdapter() {
				public void mouseClicked(MouseEvent me) {
					mouseClicar(back, 1);
				}
			});

			next = new JButton();
			MenuPrincipal.inicializarBotao(painel, next, nextImagem1,
					nextImagem2, nextImagem3, 380, 450,
					nextImagem2.getIconWidth(), 100);
			next.addMouseListener(new MouseAdapter() {
				public void mouseClicked(MouseEvent me) {
					mouseClicar(next, 3);
				}
			});

		} else {
			backgroundImagem = new ImageIcon(
					"Data\\Imagens\\Popup\\Erro\\backgroundImagem.png");
			nextImagem1 = new ImageIcon(
					"Data\\Imagens\\Popup\\Erro\\nextImagem1.png");
			nextImagem2 = new ImageIcon(
					"Data\\Imagens\\Popup\\Erro\\nextImagem2.png");
			nextImagem3 = new ImageIcon(
					"Data\\Imagens\\Popup\\Erro\\nextImagem3.png");
			showImagem1 = new ImageIcon(
					"Data\\Imagens\\Popup\\Erro\\showImagem1.png");
			showImagem2 = new ImageIcon(
					"Data\\Imagens\\Popup\\Erro\\showImagem2.png");
			showImagem3 = new ImageIcon(
					"Data\\Imagens\\Popup\\Erro\\showImagem3.png");

			this.background = new JLabel();
			this.background.setIcon(backgroundImagem);
			this.background.setBounds(0, 0, 800, 600);
			painel.add(background, JLayeredPane.DEFAULT_LAYER);

			back = new JButton();
			MenuPrincipal.inicializarBotao(painel, back, backImagem1,
					backImagem2, backImagem3, 250, 450,
					backImagem2.getIconWidth(), 100);
			back.addMouseListener(new MouseAdapter() {
				public void mouseClicked(MouseEvent me) {
					mouseClicar(back, 1);
				}
			});

			show = new JButton();
			MenuPrincipal.inicializarBotao(painel, show, showImagem1,
					showImagem2, showImagem3, 320, 450,
					showImagem2.getIconWidth(), 100);
			show.addMouseListener(new MouseAdapter() {
				public void mouseClicked(MouseEvent me) {
					mouseClicar(show, 2);
				}
			});

			next = new JButton();
			MenuPrincipal.inicializarBotao(painel, next, nextImagem1,
					nextImagem2, nextImagem3, 510, 450,
					nextImagem2.getIconWidth(), 100);
			next.addMouseListener(new MouseAdapter() {
				public void mouseClicked(MouseEvent me) {
					mouseClicar(next, 3);
				}
			});

		}

		super.setContentPane(painel);
		super.pack();
		super.setLocationRelativeTo(null);
		super.setVisible(true);
	}

	private void mouseClicar(JButton botao, int escolha) {
		if (!botao.isEnabled())
			return;
		switch (escolha) {
		case 1:
			super.setVisible(false);
			break;

		case 2:
			super.setVisible(false);
			this.drop1.setText(treinamento.getVerboCerto().getInfinitive());
			this.drop2.setText(treinamento.getVerboCerto().getSimplePast());
			this.drop3.setText(treinamento.getVerboCerto().getPastParticiple());
			break;

		case 3:
			super.setVisible(false);
			this.drop1.setText("");
			this.drop2.setText("");
			this.drop3.setText("");
			treinamento.proximaJogada();
			painelEasy.iniciarJogada();
			break;

		default:

			break;
		}
	}

}
